package com.web.controller;

import com.web.entity.User;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 用户登录测试案例
 */
@RestController
public class UserLoginController {

    /**
     * 方式1：直接定义参数  用户传递的参数名必须和方法的参数名一致
     * @return
     */
    @RequestMapping("/login1")
    public String login1(String username,String password){
        return "方法1：用户信息：" + username + "--" + password;
    }

    /**
     * 方式2：使用@RequestParam定义参数 1.名称 name/value  2.是否必填 required 3.默认值 defaultValue
     */
    @RequestMapping("/login2")
    public String login2(@RequestParam(name = "username",required = false,defaultValue = "root") String user,
                         @RequestParam(name = "password",required = false,defaultValue = "000000") String pwd){
        return "方法2：用户信息：" + user + "----" + pwd;
    }

    /**
     * 方法3：通过对象传参，对象的属性名必须和参数名一致
     */
    @RequestMapping("/login3")
    public String login3(User user){
        return "方法3：用户信息：" + user;
    }

    /**
     * 方法4：通过@RequestBody注解，接受JSON格式，转换为对象
     */
    @RequestMapping("/login4")
    public String login4(@RequestBody User user){
        return "方法4：用户信息：" + user;
    }

    /**
     * 方法5：通过路径传参
     * @PathVariable 标记参数，参数可以添加到路径中  /{参数名}/{参数名}
     */
    @RequestMapping("/login5/{username}/{password}")
    public String login5(@PathVariable String username,
                         @PathVariable String password){
        return "方法5：用户信息：" + username + "--" + password;
    }
}
